@Niki
2年前 提问
1个回答
在设计上GFS主要有哪几个特点
安全小白成长记
2年前
在设计上GFS主要有以下几个特点:
大文件和大数据块:数据文件的大小普遍在GB级别,而且其每个数据块默认大小为64MB,这样做的好处是减少了元数据的大小,能使Master节点非常方便地将元数据放置在内存中以提升访问效率。
操作以添加为主:因为文件很少被删减或者覆盖,通常只是进行添加或者读取操作,这样能充分考虑到硬盘现行吞吐量大和随机读写慢的特点。
支持容错:首先,虽然当时为了设计方便,采用了单Master的方案,但是整个系统会保证每个Master都有其相对应的复制品,以便于在Master节点出现问题时进行切换。其次,在Chunk层,GFS已经在设计上将节点失败视为常态,所以能非常好地处理Chunk节点失效的问题。
高吞吐量:虽然其单个节点的性能无论是从吞吐量还是延迟都很普通,但因为其支持上千个节点,所以总的数据吞吐量是非常惊人的。
保护数据:文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统复制3份。
扩展能力强:因为元数据偏小,使得一个Master节点能控制上千个存储数据的Chunk节点。
支持压缩:对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,并且压缩率非常惊人,有时甚至接近90%。
用户空间:虽然在用户空间运行在运行效率方面稍差,但是更便于开发和测试,还能更好地利用Linux自带的一些POSIC API。